# ifndef __COMPath_H_
# define __COMPath_H_

# include "COMBase.h"
# include "GPSMapEditItf.h"

struct CPath_t;

class CComPath : public CComDualInterface<IPath, & LIBID_GPSMapEdit> {
  public:
	CComPath (CPath_t & _path) : m_path (_path) {}

	STDMETHOD (Delete) ();

	STDMETHOD (get_Color) (long * _ret);
	STDMETHOD (put_Color) (long _Val);

	STDMETHOD (get_HighlightedColor) (long * _ret);
	STDMETHOD (put_HighlightedColor) (long _Val);

	STDMETHOD (get_Width) (long * _ret);
	STDMETHOD (put_Width) (long _Val);

	STDMETHOD (get_HighlightedSegmentFrom) (long * _ret);
	STDMETHOD (get_HighlightedSegmentTo)   (long * _ret);
	STDMETHOD (SetHighlightedSegment) (long _lFrom, long _lTo);

	STDMETHOD (get_Points) (long * _ret);
	STDMETHOD (AppendPoint) (double _Latitude, double _Longitude);
	STDMETHOD (AppendPoints) (const VARIANT * _pPoints);
	STDMETHOD (DeleteAllPoints) ();

	STDMETHOD (get_Hidden) (VARIANT_BOOL * _ret);
	STDMETHOD (put_Hidden) (VARIANT_BOOL _Val);

	STDMETHOD (get_Tag) (VARIANT * _ret);
	STDMETHOD (put_Tag) (const VARIANT * _pVal);

  private:
	CPath_t & m_path;
};

# endif // __COMPath_H_